export interface Schema {
  type?: string;
  items?: Items;
  $ref: string;
}
export interface Response {
  description: string;
  schema: Schema;
}

export interface Items {
  $ref: string;
  type: string;
  enum: any[];
}

export interface Parameter {
  name: string;
  description: string;
  in: string;
  required: boolean;
  type: string;
  format: string;
  items: Items;
  schema: Schema;
}

export interface Data {
  summary: string;
  description: string;
  operationId: string;
  consumes: string[];
  responses: {
    200: Response
  };
  parameters: Parameter[];
  tags: string[];
  url: string;
  formatUrl: string;
}
export interface Paths {
  [propName: string]: {
    get: Data;
    post: Data;
    put: Data;
    delete: Data;
  }
}

export interface Properties {
  [propName: string]: any
}

export interface Definition {
  type: string;
  required: string[];
  properties: Properties;
  items: Items;
}

export interface Definitions {
  [propName: string]: Definition
}
export interface Swagger {
  paths: Paths;
  definitions: Definitions;
}
